home *** CD-ROM | disk | FTP | other *** search
/ Belgian Amiga Club - ADF Collection / BS1 part 60.zip / BS1 part 60 / Highspeed pascal.adf / Interface / Exec.pas < prev    next >
Pascal/Delphi Source File  |  1992-01-16  |  17KB  |  753 lines

  1. Unit Exec;
  2.  
  3. Interface
  4. Type
  5.   ULongInt = LongInt;
  6.   pByte = ^Byte;
  7.   ppByte = ^pByte;
  8.   pInteger = ^Integer;
  9.   ppInteger = ^pInteger;
  10.   pLongInt = ^LongInt;
  11.   ppLongInt = ^pLongInt;
  12.   pShortInt = ^ShortInt;
  13.   ppShortInt = ^pShortInt;
  14.   pppShortInt = ^ppShortInt;
  15.   pULongInt = ^ULongInt;
  16.   pWord = ^Word;
  17.   pPointer = ^Pointer;
  18.   pSingle = ^Single;
  19.   pReal = ^Real;
  20.   CString = Packed Array [0..255] of Char;
  21.   pCString = ^CString;
  22.  
  23. Procedure PasToC (p: String; Var c: CString);
  24. Procedure CToPas (Var c; var p);
  25. Function BitMask (no: ShortInt): LongInt;
  26.  
  27.  
  28. Type
  29.   pNode = ^tNode;
  30.   tNode = Record
  31.           ln_Succ: pNode;
  32.           ln_Pred: pNode;
  33.           ln_Type: ShortInt;
  34.           ln_Pri: ShortInt;
  35.           ln_Name: pShortInt;
  36.         End;
  37.  
  38.   pMsgPort = ^tMsgPort;
  39.   tMessage = Record
  40.           mn_Node: tNode;
  41.           mn_ReplyPort: pMsgPort;
  42.           mn_Length: Integer;
  43.         End;
  44.  
  45.   tList = Record
  46.           lh_Head: pNode;
  47.           lh_Tail: pNode;
  48.           lh_TailPred: pNode;
  49.           lh_Type: ShortInt;
  50.           l_pad: ShortInt;
  51.         End;
  52.  
  53.   tMemEntry = Record
  54.         Case Integer of
  55.         0: (
  56.           meu_Reqs: LongInt;
  57.         );
  58.         1: (
  59.           meu_Addr: Pointer;
  60.           me_Length: LongInt;
  61.         );
  62.         End;
  63.  
  64.   pTask = ^tTask;
  65.   tMsgPort = Record
  66.           mp_Node: tNode;
  67.           mp_Flags: ShortInt;
  68.           mp_SigBit: ShortInt;
  69.           mp_SigTask: pTask;
  70.           mp_MsgList: tList;
  71.         End;
  72.  
  73.   tSoftIntList = Record
  74.           sh_List: tList;
  75.           sh_Pad: Integer;
  76.         End;
  77.  
  78.   tUnit = Record
  79.           unit_MsgPort: tMsgPort;
  80.           unit_flags: ShortInt;
  81.           unit_pad: ShortInt;
  82.           unit_OpenCnt: Integer;
  83.         End;
  84.  
  85.   tIntVector = Record
  86.           iv_Data: Pointer;
  87.           iv_Code: Pointer;
  88.           iv_Node: pNode;
  89.         End;
  90.  
  91.   tLibrary = Record
  92.           lib_Node: tNode;
  93.           lib_Flags: ShortInt;
  94.           lib_pad: ShortInt;
  95.           lib_NegSize: Integer;
  96.           lib_PosSize: Integer;
  97.           lib_Version: Integer;
  98.           lib_Revision: Integer;
  99.           lib_IdString: Pointer;
  100.           lib_Sum: LongInt;
  101.           lib_OpenCnt: Integer;
  102.         End;
  103.  
  104.   pResident = ^tResident;
  105.   tResident = Record
  106.           rt_MatchWord: Integer;
  107.           rt_MatchTag: pResident;
  108.           rt_EndSkip: Pointer;
  109.           rt_Flags: ShortInt;
  110.           rt_Version: ShortInt;
  111.           rt_Type: ShortInt;
  112.           rt_Pri: ShortInt;
  113.           rt_Name: pShortInt;
  114.           rt_IdString: pShortInt;
  115.           rt_Init: Pointer;
  116.         End;
  117.  
  118.   tSemaphore = Record
  119.           sm_MsgPort: tMsgPort;
  120.           sm_Bids: Integer;
  121.         End;
  122.  
  123.   pMinNode = ^tMinNode;
  124.   tMinList = Record
  125.           mlh_Head: pMinNode;
  126.           mlh_Tail: pMinNode;
  127.           mlh_TailPred: pMinNode;
  128.         End;
  129.  
  130.   tMinNode = Record
  131.           mln_Succ: pMinNode;
  132.           mln_Pred: pMinNode;
  133.         End;
  134.  
  135.   tSemaphoreRequest = Record
  136.           sr_Link: tMinNode;
  137.           sr_Waiter: pTask;
  138.         End;
  139.  
  140.   tSignalSemaphore = Record
  141.           ss_Link: tNode;
  142.           ss_NestCount: Integer;
  143.           ss_WaitQueue: tMinList;
  144.           ss_MultipleLink: tSemaphoreRequest;
  145.           ss_Owner: pTask;
  146.           ss_QueueCount: Integer;
  147.         End;
  148.  
  149.   pDevice = ^tDevice;
  150.   pUnit = ^tUnit;
  151.   tIOStdReq = Record
  152.           io_Message: tMessage;
  153.           io_Device: pDevice;
  154.           io_Unit: pUnit;
  155.           io_Command: Integer;
  156.           io_Flags: ShortInt;
  157.           io_Error: ShortInt;
  158.           io_Actual: LongInt;
  159.           io_Length: LongInt;
  160.           io_Data: Pointer;
  161.           io_Offset: LongInt;
  162.         End;
  163.  
  164.   pIntVector = ^tIntVector;
  165.   pSoftIntList = ^tSoftIntList;
  166.   tExecBase = Record
  167.           LibNode: tLibrary;
  168.           SoftVer: Integer;
  169.           LowMemChkSum: Integer;
  170.           ChkBase: LongInt;
  171.           ColdCapture: Pointer;
  172.           CoolCapture: Pointer;
  173.           WarmCapture: Pointer;
  174.           SysStkUpper: Pointer;
  175.           SysStkLower: Pointer;
  176.           MaxLocMem: LongInt;
  177.           DebugEntry: Pointer;
  178.           DebugData: Pointer;
  179.           AlertData: Pointer;
  180.           MaxExtMem: Pointer;
  181.           ChkSum: Integer;
  182.           IntVects: Array [0..15] of tIntVector;
  183.           ThisTask: pTask;
  184.           IdleCount: LongInt;
  185.           DispCount: LongInt;
  186.           Quantum: Integer;
  187.           Elapsed: Integer;
  188.           SysFlags: Integer;
  189.           IDNestCnt: ShortInt;
  190.           TDNestCnt: ShortInt;
  191.           AttnFlags: Integer;
  192.           AttnResched: Integer;
  193.           ResModules: Pointer;
  194.           TaskTrapCode: Pointer;
  195.           TaskExceptCode: Pointer;
  196.           TaskExitCode: Pointer;
  197.           TaskSigAlloc: LongInt;
  198.           TaskTrapAlloc: Integer;
  199.           MemList: tList;
  200.           ResourceList: tList;
  201.           DeviceList: tList;
  202.           IntrList: tList;
  203.           LibList: tList;
  204.           PortList: tList;
  205.           TaskReady: tList;
  206.           TaskWait: tList;
  207.           SoftInts: Array [0..4] of tSoftIntList;
  208.           LastAlert: Array [0..3] of LongInt;
  209.           VBlankFrequency: ShortInt;
  210.           PowerSupplyFrequency: ShortInt;
  211.           SemaphoreList: tList;
  212.           KickMemPtr: Pointer;
  213.           KickTagPtr: Pointer;
  214.           KickCheckSum: Pointer;
  215.           ExecBaseReserved: Array [0..9] of ShortInt;
  216.           ExecBaseNewReserved: Array [0..19] of ShortInt;
  217.         End;
  218.  
  219.   tInterrupt = Record
  220.           is_Node: tNode;
  221.           is_Data: Pointer;
  222.           is_Code: Pointer;
  223.         End;
  224.  
  225.   pMemChunk = ^tMemChunk;
  226.   tMemHeader = Record
  227.           mh_Node: tNode;
  228.           mh_Attributes: Integer;
  229.           mh_First: pMemChunk;
  230.           mh_Lower: Pointer;
  231.           mh_Upper: Pointer;
  232.           mh_Free: LongInt;
  233.         End;
  234.  
  235.   tMemChunk = Record
  236.           mc_Next: pMemChunk;
  237.           mc_Bytes: LongInt;
  238.         End;
  239.  
  240.   tDevice = Record
  241.           dd_Library: tLibrary;
  242.         End;
  243.  
  244.   tIORequest = Record
  245.           io_Message: tMessage;
  246.           io_Device: pDevice;
  247.           io_Unit: pUnit;
  248.           io_Command: Integer;
  249.           io_Flags: ShortInt;
  250.           io_Error: ShortInt;
  251.         End;
  252.  
  253.   pMemEntry = ^tMemEntry;
  254.   tMemList = Record
  255.           ml_Node: tNode;
  256.           ml_NumEntries: Integer;
  257.         End;
  258.  
  259.   tTask = Record
  260.           tc_Node: tNode;
  261.           tc_Flags: ShortInt;
  262.           tc_State: ShortInt;
  263.           tc_IDNestCnt: ShortInt;
  264.           tc_TDNestCnt: ShortInt;
  265.           tc_SigAlloc: LongInt;
  266.           tc_SigWait: LongInt;
  267.           tc_SigRecvd: LongInt;
  268.           tc_SigExcept: LongInt;
  269.           tc_TrapAlloc: Integer;
  270.           tc_TrapAble: Integer;
  271.           tc_ExceptData: Pointer;
  272.           tc_ExceptCode: Pointer;
  273.           tc_TrapData: Pointer;
  274.           tc_TrapCode: Pointer;
  275.           tc_SPReg: Pointer;
  276.           tc_SPLower: Pointer;
  277.           tc_SPUpper: Pointer;
  278.           tc_Switch: Pointer;
  279.           tc_Launch: Pointer;
  280.           tc_MemEntry: tList;
  281.           tc_UserData: Pointer;
  282.         End;
  283.  
  284.   LONG = LongInt;
  285.   LONGBITS = LongInt;
  286.   BYTE = ShortInt;
  287.   BYTEBITS = ShortInt;
  288.   APTR = Pointer;
  289.   CPTR = LongInt;
  290.   WORD = Integer;
  291.   WORDBITS = Integer;
  292.   DOUBLE = Real;
  293.   FLOAT = Single;
  294.   UCOUNT = Integer;
  295.   USHORT = Integer;
  296.   ULONG = LongInt;
  297.   UBYTE = ShortInt;
  298.   COUNT = Integer;
  299.   STRPTR = pShortInt;
  300.   SHORT = Integer;
  301.   UWORD = Integer;
  302.   BOOL = Boolean;
  303.   pLibrary = ^tLibrary;
  304.   pMessage = ^tMessage;
  305.   pSignalSemaphore = ^tSignalSemaphore;
  306.   pMemList = ^tMemList;
  307.   pInterrupt = ^tInterrupt;
  308.   pList = ^tList;
  309.   pIORequest = ^tIORequest;
  310.   pSemaphore = ^tSemaphore;
  311.   pMemHeader = ^tMemHeader;
  312.  
  313.  
  314. Const
  315.   NT_SOFTINT = $B;
  316.   AN_FreeVec = $7000005;
  317.   AN_IconLib = $9000000;
  318.   BYTEMASK = $FF;
  319.   TS_RUN = $2;
  320.   AO_IconLib = $8009;
  321.   AN_MathLib = $5000000;
  322.   AN_TMBadSupply = $15000002;
  323.   AG_OpenLib = $30000;
  324.   AO_MathLib = $8005;
  325.   AN_BitMap = $7000007;
  326.   TB_SWITCH = $6;
  327.   AN_BadState = $8400000C;
  328.   NT_MSGPORT = $4;
  329.   AN_InitAPtr = $81000007;
  330.   AN_TrackDiskDev = $14000000;
  331.   TF_SWITCH = $40;
  332.   AO_TrackDiskDev = $8014;
  333.   NT_UNKNOWN = $0;
  334.   MEMF_LARGEST = $140000;
  335.   LIB_RESERVED = $4;
  336.   SF_ALERTWACK = $2;
  337.   RTF_COLDSTART = $1;
  338.   LIB_OPEN = $FFFFFFFA;
  339.   AG_OpenDev = $40000;
  340.   AN_EndTask = $7000002;
  341.   AN_GamePortDev = $12000000;
  342.   NULL = $0;
  343.   TS_EXCEPT = $5;
  344.   SIGB_DOS = $8;
  345.   AO_GamePortDev = $8012;
  346.   AN_KeyFree = $7000008;
  347.   AN_PlaneAlloc = $84010005;
  348.   AN_AudioDev = $10000000;
  349.   AO_AudioDev = $8010;
  350.   LIBF_SUMMING = $1;
  351.   SIGF_DOS = $100;
  352.   AG_NoSignal = $70000;
  353.   AN_MakeVPort = $82010030;
  354.   TRUE_ = $1;
  355.   AN_ItemAlloc = $4010003;
  356.   AN_SubAlloc = $4010004;
  357.   AN_WeirdEcho = $8400000E;
  358.   INTB_NMI = $F;
  359.   CMD_INVALID = $0;
  360.   IOERR_BADLENGTH = $FFFFFFFC;
  361.   AN_LongFrame = $82010006;
  362.   AN_KeyRange = $700000B;
  363.   AN_BadExpansionFree = $A000001;
  364.   DEV_BEGINIO = $FFFFFFE2;
  365.   UNITF_ACTIVE = $1;
  366.   LIBF_SUMUSED = $4;
  367.   AN_FreeTwice = $81000009;
  368.   AN_GraphicsLib = $2000000;
  369.   INTF_NMI = $50000;
  370.   LIB_VECTSIZE = $6;
  371.   LIBF_DELEXP = $8;
  372.   AG_OpenRes = $50000;
  373.   AO_GraphicsLib = $8002;
  374.   NT_MEMORY = $A;
  375.   NT_SIGNALSEM = $F;
  376.   NT_SEMAPHORE = $E;
  377.   TB_STACKCHK = $4;
  378.   AN_LayersNoMem = $83010000;
  379.   RTW_NEVER = $0;
  380.   RTW_COLDSTART = $1;
  381.   MEMF_PUBLIC = $1;
  382.   CMD_STOP = $6;
  383.   AN_BadOverlay = $700000C;
  384.   LIB_USERDEF = $FFFFFFE2;
  385.   AN_TimerDev = $15000000;
  386.   TF_STACKCHK = $10;
  387.   TS_READY = $3;
  388.   AO_TimerDev = $8015;
  389.   AN_IntrMem = $81000006;
  390.   AN_ItemBoxTop = $84000006;
  391.   AN_KeyboardDev = $13000000;
  392.   SIGB_SINGLE = $4;
  393.   AO_KeyboardDev = $8013;
  394.   AN_LayersLib = $3000000;
  395.   AO_LayersLib = $8003;
  396.   AN_GfxNoLCM = $82011234;
  397.   AN_GadgetType = $84000001;
  398.   AN_DiskRsrc = $21000000;
  399.   SIGF_SINGLE = $10;
  400.   UNITF_INTASK = $2;
  401.   AO_DiskRsrc = $8021;
  402.   AN_RAMLib = $8000000;
  403.   AN_MiscRsrc = $22000000;
  404.   AN_DiskCopy = $32000000;
  405.   AO_RAMLib = $8008;
  406.   AO_MiscRsrc = $8022;
  407.   AN_OpenScreen = $84010007;
  408.   AN_ConsoleDev = $11000000;
  409.   SIGB_CHILD = $1;
  410.   AO_ConsoleDev = $8011;
  411.   DEV_ABORTIO = $FFFFFFDC;
  412.   RTM_WHEN = $3;
  413.   AN_NoConsole = $8400000F;
  414.   MEMF_CLEAR = $A0000;
  415.   AN_DOSLib = $7000000;
  416.   SIGF_CHILD = $2;
  417.   IOERR_NOCMD = $FFFFFFFD;
  418.   AO_DOSLib = $8007;
  419.   AN_StartMem = $7010001;
  420.   AN_AsyncPkt = $7000004;
  421.   LIB_EXPUNGE = $FFFFFFEE;
  422.   AN_OpenScrnRast = $84010008;
  423.   LIB_EXTFUNC = $FFFFFFE8;
  424.   AG_NoMemory = $10000;
  425.   AN_CreatePort = $84010002;
  426.   RTF_AUTOINIT = $80;
  427.   AN_DiskError = $700000A;
  428.   SYSBASESIZE = $24C;
  429.   AN_ExcptVect = $81000001;
  430.   AN_ShortFrame = $82010007;
  431.   AN_TDCalibSeek = $14000001;
  432.   AN_CIARsrc = $20000000;
  433.   AN_DRIntNoAct = $21000002;
  434.   AFB_68010 = $0;
  435.   AO_CIARsrc = $8020;
  436.   AN_TextTmpRas = $2010009;
  437.   AFB_68020 = $1;
  438.   TB_PROCTIME = $0;
  439.   AN_AddSWGadget = $8401000A;
  440.   AN_TMBadReq = $15000001;
  441.   SIH_PRIMASK = $F0;
  442.   AFF_68010 = $1;
  443.   NT_BOOTNODE = $10;
  444.   CMD_UPDATE = $4;
  445.   AFF_68020 = $2;
  446.   AFB_RESERVED8 = $8;
  447.   TF_PROCTIME = $1;
  448.   AFB_RESERVED9 = $9;
  449.   AN_ExpansionLib = $A000000;
  450.   AO_ExpansionLib = $800A;
  451.   AN_BootStrap = $30000000;
  452.   AN_BootError = $30000001;
  453.   AO_BootStrap = $8030;
  454.   AN_BogusExcpt = $8100000A;
  455.   SIGB_ABORT = $0;
  456.   AN_DRHasDisk = $21000001;
  457.   AN_Workbench = $31000000;
  458.   NT_TASK = $1;
  459.   AO_Workbench = $8031;
  460.   FALSE_ = $0;
  461.   CMD_CLEAR = $5;
  462.   IOERR_OPENFAIL = $FFFFFFFF;
  463.   AN_OpenWindow = $8401000B;
  464.   SIGF_ABORT = $1;
  465.   LIBF_CHANGED = $2;
  466.   AFB_68881 = $4;
  467.   NT_FONT = $C;
  468.   AN_MemCorrupt = $81000005;
  469.   NT_INTERRUPT = $2;
  470.   NT_RESOURCE = $8;
  471.   TS_WAIT = $4;
  472.   AFF_68881 = $10;
  473.   LIBRARY_VERSION = $22;
  474.   NT_MESSAGE = $5;
  475.   AN_SysScrnType = $84000009;
  476.   AN_RegionMemory = $8201000B;
  477.   CMD_NONSTD = $9;
  478.   AN_SemCorrupt = $81000008;
  479.   NT_FREEMSG = $6;
  480.   MEM_BLOCKMASK = $7;
  481.   LIB_NONSTD = $FFFFFFE2;
  482.   TS_INVALID = $0;
  483.   MEMF_CHIP = $2;
  484.   NT_REPLYMSG = $7;
  485.   EXECNAME = 'exec.library';
  486.   AN_TDDelay = $14000002;
  487.   LIB_CLOSE = $FFFFFFF4;
  488.   AN_BadChkSum = $7000009;
  489.   AN_BadGadget = $4000001;
  490.   PA_SIGNAL = $0;
  491.   SIGB_BLIT = $4;
  492.   AT_DeadEnd = $80000000;
  493.   AT_Recovery = $0;
  494.   TB_LAUNCH = $7;
  495.   NT_DEVICE = $3;
  496.   NT_LIBRARY = $9;
  497.   PA_SOFTINT = $1;
  498.   MEMF_FAST = $4;
  499.   IOERR_ABORTED = $FFFFFFFE;
  500.   AG_MakeLib = $20000;
  501.   TS_REMOVED = $6;
  502.   SIGF_BLIT = $10;
  503.   PF_ACTION = $3;
  504.   TF_LAUNCH = $80;
  505.   PA_IGNORE = $2;
  506.   CMD_READ = $2;
  507.   MEM_BLOCKSIZE = $8;
  508.   CMD_FLUSH = $8;
  509.   AN_CListLib = $6000000;
  510.   LIB_BASE = $FFFFFFFA;
  511.   IOB_QUICK = $0;
  512.   CMD_RESET = $1;
  513.   AO_CListLib = $8006;
  514.   AN_BadSegList = $8000001;
  515.   AN_Intuition = $4000000;
  516.   AO_Intuition = $8004;
  517.   AN_BltBitMap = $8201000A;
  518.   IOF_QUICK = $1;
  519.   NT_PROCESS = $D;
  520.   AN_BaseChkSum = $81000002;
  521.   AN_QPktFail = $7000003;
  522.   AN_LibChkSum = $81000003;
  523.   TS_ADDED = $1;
  524.   TB_EXCEPT = $5;
  525.   CMD_WRITE = $3;
  526.   AG_IOError = $60000;
  527.   AN_LibMem = $81000004;
  528.   AN_ExecLib = $1000000;
  529.   AN_GfxNoMem = $82010000;
  530.   CMD_START = $7;
  531.   AO_ExecLib = $8001;
  532.   AN_BadMessage = $8400000D;
  533.   TF_EXCEPT = $20;
  534.   AN_DiskBlkSeq = $7000006;
  535.   RTC_MATCHWORD = $4AFC;
  536.  
  537.  
  538. Function Supervisor (userFunction: Pointer): LongInt;
  539. Procedure InitCode
  540.          (startClass: LongInt;
  541.           version: LongInt);
  542.  
  543. Procedure InitStruct
  544.          (initTable: Pointer;
  545.           memory: Pointer;
  546.           size: LongInt);
  547.  
  548. Function MakeLibrary
  549.          (funcInit: Pointer;
  550.           structInit: Pointer;
  551.           libInit: Pointer;
  552.           dataSize: LongInt;
  553.           codeSize: LongInt): pLibrary;
  554.  
  555. Function MakeFunctions
  556.          (target: Pointer;
  557.           functionArray: Pointer;
  558.           funcDispBase: Pointer): LongInt;
  559.  
  560. Function FindResident (name: String): pResident;
  561. Procedure InitResident
  562.          (resident: pResident;
  563.           segList: LongInt);
  564.  
  565. Procedure Alert
  566.          (alertNum: LongInt;
  567.           parameters: Pointer);
  568.  
  569. Procedure Debug (flags: LongInt);
  570. Procedure Disable;
  571. Procedure Enable;
  572. Procedure Forbid;
  573. Procedure Permit;
  574. Function SetSR
  575.          (newSR: LongInt;
  576.           mask: LongInt): LongInt;
  577.  
  578. Function SuperState: Pointer;
  579. Procedure UserState (sysStack: Pointer);
  580. Function SetIntVector
  581.          (intNumber: LongInt;
  582.           interrupt: pInterrupt): pInterrupt;
  583.  
  584. Procedure AddIntServer
  585.          (intNumber: LongInt;
  586.           interrupt: pInterrupt);
  587.  
  588. Procedure RemIntServer
  589.          (intNumber: LongInt;
  590.           interrupt: pInterrupt);
  591.  
  592. Procedure Cause (interrupt: pInterrupt);
  593. Function Allocate
  594.          (freeList: pMemHeader;
  595.           byteSize: LongInt): Pointer;
  596.  
  597. Procedure Deallocate
  598.          (freeList: pMemHeader;
  599.           memoryBlock: Pointer;
  600.           byteSize: LongInt);
  601.  
  602. Function AllocMem
  603.          (byteSize: LongInt;
  604.           requirements: LongInt): Pointer;
  605.  
  606. Function AllocAbs
  607.          (byteSize: LongInt;
  608.           location: Pointer): Pointer;
  609.  
  610. Procedure FreeMem_
  611.          (memoryBlock: Pointer;
  612.           byteSize: LongInt);
  613.  
  614. Function AvailMem (requirements: LongInt): LongInt;
  615. Function AllocEntry (entry: pMemList): pMemList;
  616. Procedure FreeEntry (entry: pMemList);
  617. Procedure Insert_
  618.          (list: pList;
  619.           node: pNode;
  620.           pred: pNode);
  621.  
  622. Procedure AddHead
  623.          (list: pList;
  624.           node: pNode);
  625.  
  626. Procedure AddTail
  627.          (list: pList;
  628.           node: pNode);
  629.  
  630. Procedure Remove (node: pNode);
  631. Function RemHead (list: pList): pNode;
  632. Function RemTail (list: pList): pNode;
  633. Procedure Enqueue
  634.          (list: pList;
  635.           node: pNode);
  636.  
  637. Function FindName
  638.          (list: pList;
  639.           name: String): pNode;
  640.  
  641. Function AddTask
  642.          (task: pTask;
  643.           initPC: Pointer;
  644.           finalPC: Pointer): Pointer;
  645.  
  646. Procedure RemTask (task: pTask);
  647. Function FindTask (name: String): pTask;
  648. Function SetTaskPri
  649.          (task: pTask;
  650.           priority: LongInt): ShortInt;
  651.  
  652. Function SetSignal
  653.          (newSignals: LongInt;
  654.           signalSet: LongInt): LongInt;
  655.  
  656. Function SetExcept
  657.          (newSignals: LongInt;
  658.           signalSet: LongInt): LongInt;
  659.  
  660. Function Wait (signalSet: LongInt): LongInt;
  661. Procedure Signal
  662.          (task: pTask;
  663.           signalSet: LongInt);
  664.  
  665. Function AllocSignal (signalNum: ShortInt): ShortInt;
  666. Procedure FreeSignal (signalNum: ShortInt);
  667. Function AllocTrap (trapNum: LongInt): LongInt;
  668. Procedure FreeTrap (trapNum: LongInt);
  669. Procedure AddPort (port: pMsgPort);
  670. Procedure RemPort (port: pMsgPort);
  671. Procedure PutMsg
  672.          (port: pMsgPort;
  673.           message: pMessage);
  674.  
  675. Function GetMsg (port: pMsgPort): pMessage;
  676. Procedure ReplyMsg (message: pMessage);
  677. Function WaitPort (port: pMsgPort): pMessage;
  678. Function FindPort (name: String): pMsgPort;
  679. Procedure AddLibrary (library: pLibrary);
  680. Procedure RemLibrary (library: pLibrary);
  681. Function OldOpenLibrary (libName: Pointer): pLibrary;
  682. Procedure CloseLibrary (library: pLibrary);
  683. Function SetFunction
  684.          (library: pLibrary;
  685.           funcOffset: LongInt;
  686.           funcEntry: Pointer): Pointer;
  687.  
  688. Procedure SumLibrary (library: pLibrary);
  689. Procedure AddDevice (device: pDevice);
  690. Procedure RemDevice (device: pDevice);
  691. Function OpenDevice
  692.          (devName: String;
  693.           unit_: LongInt;
  694.           ioRequest: pIORequest;
  695.           flags: LongInt): ShortInt;
  696.  
  697. Procedure CloseDevice (ioRequest: pIORequest);
  698. Function DoIO (ioRequest: pIORequest): ShortInt;
  699. Procedure SendIO (ioRequest: pIORequest);
  700. Function CheckIO (ioRequest: pIORequest): Boolean;
  701. Function WaitIO (ioRequest: pIORequest): ShortInt;
  702. Procedure AbortIO (ioRequest: pIORequest);
  703. Procedure AddResource (resource: Pointer);
  704. Procedure RemResource (resource: Pointer);
  705. Function OpenResource (resName: String): Pointer;
  706. Procedure RawDoFmt
  707.          (formatString: pShortInt;
  708.           dataStream: Pointer;
  709.           putChProc: Pointer;
  710.           putChData: Pointer);
  711.  
  712. Function GetCC: Integer;
  713. Function TypeOfMem (address: Pointer): LongInt;
  714. Function Procure
  715.          (semaport: pSemaphore;
  716.           bidMsg: pMessage): ShortInt;
  717.  
  718. Procedure Vacate (semaport: pSemaphore);
  719. Function OpenLibrary
  720.          (libName: String;
  721.           version: LongInt): pLibrary;
  722.  
  723. Procedure InitSemaphore (sigSem: pSignalSemaphore);
  724. Procedure ObtainSemaphore (sigSem: pSignalSemaphore);
  725. Procedure ReleaseSemaphore (sigSem: pSignalSemaphore);
  726. Function AttemptSemaphore (sigSem: pSignalSemaphore): LongInt;
  727. Procedure ObtainSemaphoreList (sigSem: pList);
  728. Procedure ReleaseSemaphoreList (sigSem: pList);
  729. Function FindSemaphore (sigSem: String): pSignalSemaphore;
  730. Procedure AddSemaphore (sigSem: pSignalSemaphore);
  731. Procedure RemSemaphore (sigSem: pSignalSemaphore);
  732. Function SumKickData: LongInt;
  733. Procedure AddMemList
  734.          (size: LongInt;
  735.           attributes: LongInt;
  736.           pri: LongInt;
  737.           base: Pointer;
  738.           name: pShortInt);
  739.  
  740. Procedure CopyMem
  741.          (source: Pointer;
  742.           dest: Pointer;
  743.           size: LongInt);
  744.  
  745. Procedure CopyMemQuick
  746.          (source: pLongInt;
  747.           dest: pLongInt;
  748.           size: LongInt);
  749.  
  750.  
  751.  
  752. End.
  753.